<?php
Pressure::setStart(); // Начинаем сбор данных о нагрузке страницы
// вход пользователя через форму входа на главной странице
if (isset($_POST['enter_system']) || isset($_POST['enter_system_x'])) {
	$login = Service_Function::absolutelyEscapeString($_POST['login']);
	$password = md5($_POST['password']);
	$noSave = isset($_POST['no_save']);
	$objSession = User_Session::instance();
	$objUser->id = $objSession->login($login, $password, !$noSave);

	if (!$objSession->isLoggedIn()) { //Если пользователь неудачно залогинился
		//Exception_ActiveRecord::addObjectException('User_User', 'pass', 'Неправильное сочетание логина и пароля, либо Вы ещё не подтвердили Вашу регистрацию');
		User_Flash::__addToLoadedArray('errorMessage', 'Неправильное сочетание логина и пароля, либо Вы ещё не подтвердили Вашу регистрацию');
	}
	elseif (!empty($_SERVER['HTTP_REFERER'])) // Если пользователь залогинился и нам известна страница, с которой он логинился
	  User_Session::moveTo($_SERVER['HTTP_REFERER']);
  else // Если пользователь залогинился и нам НЕ известна страница, с которой он логинился
	  User_Session::moveTo(W_ABSPATH);
}


//То что будет в кроне:
User_Session::deleteBadSessions();    // Удаляем лишние сессии
User_User::setZeroStatusByTimeOut();  // Устанавливаем флаг offLine для ряда пользователей

$getStrPos = strpos($_SERVER['REQUEST_URI'], '?');
$strUrl = substr($_SERVER['REQUEST_URI'], 0, $getStrPos ? $getStrPos : strlen($_SERVER['REQUEST_URI']));
$arrRequest = explode('/', substr($strUrl, strlen(W_ABSPATH))); // Преобразовываем URL к массиву
if (!isset($arrRequest[1])) $arrRequest[1] = ''; // Для упрощения обработки контроллером
if (!isset($arrRequest[2])) $arrRequest[2] = ''; // Для упрощения обработки контроллером
if (!isset($arrRequest[3])) $arrRequest[3] = ''; // Для упрощения обработки контроллером

// Определение контроллера для обработки запроса
switch ($arrRequest[0]) {
  case '':
    $controller = new Controller_Index($arrRequest);
    break;
	case 'auth': // Страницы, связанные с аутентификацией
		$controller = new Controller_Auth($arrRequest);
		break;
	case 'faq': // Страницы, связанные с профайлом пользователя
		$controller = new Controller_FAQ($arrRequest);
		break;
	case 'article':case 'articles': // Страницы, связанные со статьями 
	$controller = new Controller_Article($arrRequest);
		break;
	case 'prognoz': // Страницы, связанные со статьями 
	$controller = new Controller_Prognoz($arrRequest);
		break;		
	case 'stat': // Страницы, связанные со статистикой
	$controller = new Controller_Stat($arrRequest);
		break;	
	case 'myorder': // Страницы, связанные с списком заказов
	$controller = new Controller_Myorder($arrRequest);
		break;
	case 'order': // Страницы, связанные с списком заказов
	$controller = new Controller_Order($arrRequest);
		break;		
	$controller = new Controller_Notice($arrRequest);
		break;			
		
	case 'ajax': // обработка AJAX - запросов
	  switch ($arrRequest[1]){
		  case 'faq':
		    $controller = new Controller_Ajax_FAQ($arrRequest);
		    break;
		  case 'common':
		    $controller = new Controller_Ajax_Common($arrRequest);
		    break;
			case 'user':
				$controller = new Controller_Ajax_User($arrRequest);
				break;
			case 'auth':
				$controller = new Controller_Ajax_Auth($arrRequest);
				break;
			case 'wysiwyg':
				$controller = new Controller_Ajax_Wysiwyg($arrRequest);
				break;
			case 'prognoz':
				$controller = new Controller_Ajax_Prognoz($arrRequest);
				break;				
			case 'article':
				$controller = new Controller_Ajax_Article($arrRequest);
				break;			
			case 'stat':
				$controller = new Controller_Ajax_Stat($arrRequest);
				break;		
			case 'myorder':
				$controller = new Controller_Ajax_Myorder($arrRequest);
				break;		
			case 'order':
				$controller = new Controller_Ajax_Order($arrRequest);
				break;												
		  default:
		    $controller = new Controller_Ajax($arrRequest);
		}
		break;
	default:
	  $controller = new Controller_Default($arrRequest); // Контроллер по умолчанию
	  $controller->cookies = $HTTP_COOKIE_VARS;
	  break;
}

User_Flash::__deleteAllFromUser(); // Очищаем пользовательские переменные FLASH
Pressure::saveDuration($_SERVER['REQUEST_URI'], Pressure::calculateCurrentDuration()); // Завершаем сбор данных о нагрузке и записываем в БД
?>
